package com.leaf.spring.y201906.day26.base;

import java.util.TreeMap;

import org.junit.Before;
import org.junit.Test;

/**
 * 熟悉TreeMap功能
 * 
 * 1. HashMap可实现快速存储和检索，但其缺点是其包含的元素是无序的，这导致它在存在大量迭代的情况下表现不佳。 2.
 * LinkedHashMap保留了HashMap的优势，且其包含的元素是有序的。它在有大量迭代的情况下表现更好。 3.
 * TreeMap能便捷的实现对其内部元素的各种排序，但其一般性能比前两种map差。
 * 
 * @Title:
 * @Description:
 * @Author: leaf
 * @Since:2019年6月26日
 * @Version:1.1.0
 */
public class TreeMapTest {

	private TreeMap<Integer, String> sortedMap = new TreeMap<>();

	@Before
	public void init() {

		sortedMap.put(2, "B");
		sortedMap.put(1, "A");
		sortedMap.put(3, "C");
		sortedMap.put(5, "E");
		sortedMap.put(4, "D");
		sortedMap.put(7, "G");
		sortedMap.put(6, "F");

	}

	@Test
	public void test() {

		System.out.println("firstKey = " + sortedMap.firstKey()); // 1
		// 返回映射中当前最后一个（最高）键。
		System.out.println("lastKey = " + sortedMap.lastKey()); // 7
		System.out.println("headMap = " + sortedMap.headMap(4)); // {1=A, 2=B, 3=C}
		System.out.println("tailMap = " + sortedMap.tailMap(4)); // {4=D, 5=E, 6=F, 7=G}
		System.out.println("subMap = " + sortedMap.subMap(1, 3)); // {1=A, 2=B}
		System.out.println("subMap = " + sortedMap.entrySet()); // [1=A, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G]

	}

}
